
package gihub.hanlyjiang.hanlygithub.user;

import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;

@SuppressWarnings("unused")
public class UserResponse {

    @SerializedName("avatar_url")
    private String mAvatarUrl;
    @SerializedName("bio")
    private Object mBio;
    @SerializedName("blog")
    private Object mBlog;
    @SerializedName("created_at")
    private String mCreatedAt;
    @SerializedName("events_url")
    private String mEventsUrl;
    @SerializedName("followers")
    private Long mFollowers;
    @SerializedName("followers_url")
    private String mFollowersUrl;
    @SerializedName("following")
    private Long mFollowing;
    @SerializedName("following_url")
    private String mFollowingUrl;
    @SerializedName("gists_url")
    private String mGistsUrl;
    @SerializedName("html_url")
    private String mHtmlUrl;
    @SerializedName("id")
    private Long mId;
    @SerializedName("login")
    private String mLogin;
    @SerializedName("name")
    private String mName;
    @SerializedName("organizations_url")
    private String mOrganizationsUrl;
    @SerializedName("public_gists")
    private Long mPublicGists;
    @SerializedName("public_repos")
    private Long mPublicRepos;
    @SerializedName("received_events_url")
    private String mReceivedEventsUrl;
    @SerializedName("repos_url")
    private String mReposUrl;
    @SerializedName("site_admin")
    private Boolean mSiteAdmin;
    @SerializedName("stared")
    private Long mStared;
    @SerializedName("starred_url")
    private String mStarredUrl;
    @SerializedName("subscriptions_url")
    private String mSubscriptionsUrl;
    @SerializedName("type")
    private String mType;
    @SerializedName("updated_at")
    private String mUpdatedAt;
    @SerializedName("url")
    private String mUrl;
    @SerializedName("watched")
    private Long mWatched;
    @SerializedName("weibo")
    private Object mWeibo;

    public String getAvatarUrl() {
        return mAvatarUrl;
    }

    public Object getBio() {
        return mBio;
    }

    public Object getBlog() {
        return mBlog;
    }

    public String getCreatedAt() {
        return mCreatedAt;
    }

    public String getEventsUrl() {
        return mEventsUrl;
    }

    public Long getFollowers() {
        return mFollowers;
    }

    public String getFollowersUrl() {
        return mFollowersUrl;
    }

    public Long getFollowing() {
        return mFollowing;
    }

    public String getFollowingUrl() {
        return mFollowingUrl;
    }

    public String getGistsUrl() {
        return mGistsUrl;
    }

    public String getHtmlUrl() {
        return mHtmlUrl;
    }

    public Long getId() {
        return mId;
    }

    public String getLogin() {
        return mLogin;
    }

    public String getName() {
        return mName;
    }

    public String getOrganizationsUrl() {
        return mOrganizationsUrl;
    }

    public Long getPublicGists() {
        return mPublicGists;
    }

    public Long getPublicRepos() {
        return mPublicRepos;
    }

    public String getReceivedEventsUrl() {
        return mReceivedEventsUrl;
    }

    public String getReposUrl() {
        return mReposUrl;
    }

    public Boolean getSiteAdmin() {
        return mSiteAdmin;
    }

    public Long getStared() {
        return mStared;
    }

    public String getStarredUrl() {
        return mStarredUrl;
    }

    public String getSubscriptionsUrl() {
        return mSubscriptionsUrl;
    }

    public String getType() {
        return mType;
    }

    public String getUpdatedAt() {
        return mUpdatedAt;
    }

    public String getUrl() {
        return mUrl;
    }

    public Long getWatched() {
        return mWatched;
    }

    public Object getWeibo() {
        return mWeibo;
    }

    public static class Builder {

        private String mAvatarUrl;
        private Object mBio;
        private Object mBlog;
        private String mCreatedAt;
        private String mEventsUrl;
        private Long mFollowers;
        private String mFollowersUrl;
        private Long mFollowing;
        private String mFollowingUrl;
        private String mGistsUrl;
        private String mHtmlUrl;
        private Long mId;
        private String mLogin;
        private String mName;
        private String mOrganizationsUrl;
        private Long mPublicGists;
        private Long mPublicRepos;
        private String mReceivedEventsUrl;
        private String mReposUrl;
        private Boolean mSiteAdmin;
        private Long mStared;
        private String mStarredUrl;
        private String mSubscriptionsUrl;
        private String mType;
        private String mUpdatedAt;
        private String mUrl;
        private Long mWatched;
        private Object mWeibo;

        public UserResponse.Builder withAvatarUrl(String avatarUrl) {
            mAvatarUrl = avatarUrl;
            return this;
        }

        public UserResponse.Builder withBio(Object bio) {
            mBio = bio;
            return this;
        }

        public UserResponse.Builder withBlog(Object blog) {
            mBlog = blog;
            return this;
        }

        public UserResponse.Builder withCreatedAt(String createdAt) {
            mCreatedAt = createdAt;
            return this;
        }

        public UserResponse.Builder withEventsUrl(String eventsUrl) {
            mEventsUrl = eventsUrl;
            return this;
        }

        public UserResponse.Builder withFollowers(Long followers) {
            mFollowers = followers;
            return this;
        }

        public UserResponse.Builder withFollowersUrl(String followersUrl) {
            mFollowersUrl = followersUrl;
            return this;
        }

        public UserResponse.Builder withFollowing(Long following) {
            mFollowing = following;
            return this;
        }

        public UserResponse.Builder withFollowingUrl(String followingUrl) {
            mFollowingUrl = followingUrl;
            return this;
        }

        public UserResponse.Builder withGistsUrl(String gistsUrl) {
            mGistsUrl = gistsUrl;
            return this;
        }

        public UserResponse.Builder withHtmlUrl(String htmlUrl) {
            mHtmlUrl = htmlUrl;
            return this;
        }

        public UserResponse.Builder withId(Long id) {
            mId = id;
            return this;
        }

        public UserResponse.Builder withLogin(String login) {
            mLogin = login;
            return this;
        }

        public UserResponse.Builder withName(String name) {
            mName = name;
            return this;
        }

        public UserResponse.Builder withOrganizationsUrl(String organizationsUrl) {
            mOrganizationsUrl = organizationsUrl;
            return this;
        }

        public UserResponse.Builder withPublicGists(Long publicGists) {
            mPublicGists = publicGists;
            return this;
        }

        public UserResponse.Builder withPublicRepos(Long publicRepos) {
            mPublicRepos = publicRepos;
            return this;
        }

        public UserResponse.Builder withReceivedEventsUrl(String receivedEventsUrl) {
            mReceivedEventsUrl = receivedEventsUrl;
            return this;
        }

        public UserResponse.Builder withReposUrl(String reposUrl) {
            mReposUrl = reposUrl;
            return this;
        }

        public UserResponse.Builder withSiteAdmin(Boolean siteAdmin) {
            mSiteAdmin = siteAdmin;
            return this;
        }

        public UserResponse.Builder withStared(Long stared) {
            mStared = stared;
            return this;
        }

        public UserResponse.Builder withStarredUrl(String starredUrl) {
            mStarredUrl = starredUrl;
            return this;
        }

        public UserResponse.Builder withSubscriptionsUrl(String subscriptionsUrl) {
            mSubscriptionsUrl = subscriptionsUrl;
            return this;
        }

        public UserResponse.Builder withType(String type) {
            mType = type;
            return this;
        }

        public UserResponse.Builder withUpdatedAt(String updatedAt) {
            mUpdatedAt = updatedAt;
            return this;
        }

        public UserResponse.Builder withUrl(String url) {
            mUrl = url;
            return this;
        }

        public UserResponse.Builder withWatched(Long watched) {
            mWatched = watched;
            return this;
        }

        public UserResponse.Builder withWeibo(Object weibo) {
            mWeibo = weibo;
            return this;
        }

        public UserResponse build() {
            UserResponse UserResponse = new UserResponse();
            UserResponse.mAvatarUrl = mAvatarUrl;
            UserResponse.mBio = mBio;
            UserResponse.mBlog = mBlog;
            UserResponse.mCreatedAt = mCreatedAt;
            UserResponse.mEventsUrl = mEventsUrl;
            UserResponse.mFollowers = mFollowers;
            UserResponse.mFollowersUrl = mFollowersUrl;
            UserResponse.mFollowing = mFollowing;
            UserResponse.mFollowingUrl = mFollowingUrl;
            UserResponse.mGistsUrl = mGistsUrl;
            UserResponse.mHtmlUrl = mHtmlUrl;
            UserResponse.mId = mId;
            UserResponse.mLogin = mLogin;
            UserResponse.mName = mName;
            UserResponse.mOrganizationsUrl = mOrganizationsUrl;
            UserResponse.mPublicGists = mPublicGists;
            UserResponse.mPublicRepos = mPublicRepos;
            UserResponse.mReceivedEventsUrl = mReceivedEventsUrl;
            UserResponse.mReposUrl = mReposUrl;
            UserResponse.mSiteAdmin = mSiteAdmin;
            UserResponse.mStared = mStared;
            UserResponse.mStarredUrl = mStarredUrl;
            UserResponse.mSubscriptionsUrl = mSubscriptionsUrl;
            UserResponse.mType = mType;
            UserResponse.mUpdatedAt = mUpdatedAt;
            UserResponse.mUrl = mUrl;
            UserResponse.mWatched = mWatched;
            UserResponse.mWeibo = mWeibo;
            return UserResponse;
        }

    }

    public String toString(){
        return new Gson().toJson(this);
    }

}
